import router from '@system.router';

var picker1value = null;
var picker2value = null;

// 配合检查计时器 1 ，根据设定的速度来计算时间
var picker1seconds = null;
// 配合检查计时器 2 ，根据设定的速度来计算每次呼吸的时长
var picker2seconds = null;

// 检查计时器 1 --> 训练时长
var timer1 = null;
// 检查计时器 2 --> 呼吸时长
var timer2 = null;
// 检查计时器3 --> 设置一个呼吸时长完成的百分比
var timer3 = null;

// 计数器 --> 判断是否达到设定呼吸次数
var counter = 0;

export default {
    data: {
        seconds: 0,
        isShow: true,
        breath: "吸气",
        percent: "0", // -->
        count: "",
        duration: "",

    },
    /**
     * 页面初始化函数，在初始化中我们需要完成以下动作：
     * 1. 获取主页面设置的 时间 、速度。
     * 2. 根据时间来设定对应的 秒数
     * 3. 根据频率设定对应的 呼吸时长
     */
    onInit(){
        console.log("训练页面 onInit()");

        // 1. 获取主页面设置的 时间 、速度。
        console.log(`左边选择器的值:${this.data1}`);
        console.log(`右边选择器的值:${this.data2}`);

        picker1value = this.key1;
        picker2value = this.key2;

        //  2. 根据时间来设定对应的 秒数
        picker1seconds = picker1value * 60;
        this.seconds = picker1seconds;
        console.log("picker1seconds 设定为：" + picker1seconds);

        // 3. 根据频率设定对应的 呼吸时长
        if (picker2value == "较慢") {
            picker2seconds = 6;
        } else if (picker2value == "舒缓"){
            picker2seconds = 4;
        } else if (picker2value == "较快"){
            picker2seconds = 2;
        }
        console.log("picker2seconds 设定为：" + picker2seconds);

        this.duration = picker2seconds + "s";
        this.count = (picker1seconds / picker2seconds).toString();

    },
    /**
     * 页面生命周期 onShow ，用于在页面进行时的操作:
     * 1. 完成页面的 两个计数器 初始化工作
     */
    onShow(){
        console.log("训练页面 onShow()");
        timer1 = setInterval(this.run1,1000);
        timer2 = setInterval(this.run2, picker2seconds * 1000);
        timer3 = setInterval(this.run3, picker2seconds/100 * 1000);
    },

    // 单击事件
    clickAction(){
        clearInterval(timer1);
        console.log("我被点了");
        clearInterval(timer1);
        timer1 = null;

        clearInterval(timer2);
        timer2 = null;

        clearInterval(timer3);
        timer3 = null;

        router.replace({
            uri:'pages/index/index' //该路劲需要被注册至 config.json 中
        });
    },

    // 计时器 1 的工作逻辑
    run1(){
        this.seconds--;
        if (this.seconds == 0) {
            clearInterval(timer1);
            this.isShow = false;
            timer1 = null;
        }
    },

    /**
     * 计时器 2 工作逻辑：
     * 1. 判断是否达到呼吸次数，是 --》 重置计时器2
     * 2. 否 --> 在 吸气 、 呼气间闪烁
     */
    run2(){
        console.log("已进入 run2()");
        counter++;
        if (counter == picker1seconds / picker2seconds) {
            clearInterval(timer2);
            timer2 = null;
            this.breath = "已完成"
        } else {
            if (this.breath == "吸气"){
                this.breath = "呼气";
            } else if (this.breath == "呼气") {
                this.breath = "吸气";
            }
        }
    },

    /**
     *  计时器 3 工作逻辑
     */
    run3(){
        this.percent = (parseInt(this.percent) + 1).toString();

        // 范围控制
        if (parseInt(this.percent) < 10){
            this.percent = "0" + this.percent;
        }
        if (parseInt(this.percent) == 100) {
            this.percent = "0";
        }

        // 判断 计时器2 是否完成工作
        if (timer2 == null) {
            clearInterval(timer3);
            timer3 = null;
            this.percent = "100";
        }
    }
}
